# 手抄对象什么情况被销毁？3遍
# 当一个对象被垃圾回收时，Python 就会自动调用该对象的 __del__ 方法。需要说明的是，不要以为对一个变量执行 del 操作，
# 该变量所引用的对象就会被回收，只有当对象的引用计数变成 0 时，该对象才会被回收。因此，如果一个对象有多个变量引用它，
# 那么 del 其中一个变量是不会回收该对象的。

# 当一个对象被垃圾回收时，Python就会自动调用该对象的  __del__ 方法。需要说明的是，不要以为对一个变量执行 del操作，
# 该变量所引用的对象就会被回收，只有当对象引用的计数变成0时，该对象才会被回收。因此，一个对象有多个变量引用它，
# 那么 del 其中的一个变量是不会回收该对象的

# 当一个对象被垃圾回收时，Python就会自动调用该对象的 __del__ 方法。需要说明的是，不要以为对一个变量执行 del 操作
# 该变量所引用的对象就会被回收，只有当对象的引用计数变成0时，该对象才会被回收。因此，如果一个对象有多个变量引用它，
# 那么del其中的一个变量是不会回收该对象的

class Item:
    def __init__(self,name,price):
        self.name = name
        self.price = price

    def __del__(self):       # 定义析构函数
        print('del删除对象')

# 创建一个Item对象，将之赋予im变量
im = Item('鼠标',29.8)
x = im
# 打印im所引用的Item对象
del im
print('---------------')

# 程序中重写了 Item 类的 __del__() 方法，该方法就是 Item 类的析构函数，当系统将要回收 Item 时，
# 系统会自动调用 Item 对象的 __del__() 方法。












